Traditionally, personal computer configurations include combinations of operating systems, applications, and user settings, which are each managed individually by owners or administrators on an ongoing basis. However, many organizations are now using desktop virtualization systems to provide more flexible options to address the varying needs of their users. In a desktop virtualization system, a user's computing environment (e.g., operating system, applications, and/or user settings) may be separated from the user's physical computing device (e.g., smartphone, laptop, desktop computer). Using client-server technology, a “virtualized desktop” may be stored in and administered by a remote server, rather than in the local storage of the client computing device.
There are several different types of desktop virtualization systems. As an example, Virtual Desktop Infrastructure (VDI) refers to the process of running a user desktop inside a virtual machine that resides on a server. VDI and other server-based desktop virtualization systems may provide personalized desktops for each user, while allowing for centralized management and security. Servers in such systems may include storage for virtual desktop images and system configuration information, as well as software components to provide the virtual machines and allow users to interconnect to them. For example, a VDI server may include one or more hypervisors (virtual machine managers) to create and maintain multiple virtual machines, software to manage the hypervisor(s), a connection broker, and software to provision and manage the virtual desktops. VDI management is a complex and tedious process.
Desktop virtualization systems may include one or more virtual disk layers that comprise a hierarchy of disk layers or “disk tree.” Each disk layer in the hierarchy of disk layers is comprised of one or more virtual disks. The composition of these disk layers may take place through various means. Disk trees are involved in a run-time merge performed during operating system boot, which provides information relating to the data contained in each disk tree, and results in the generation of one or more virtual machines for utilization by the end user.